Reactor map, mapNotNull区别
Mono.just("").mapNotNull {
if (it == "") {
null
} else ""
}.switchIfEmpty {
// 触发
println("null")
Mono.just("")
}.subscribe { println(it) }
// 抛出NPE异常
Mono.just("").map {
if (it == "") {
null
} else ""
}.switchIfEmpty {
// 不触发
println("null")
Mono.just("")
}.subscribe {
println(it)
}
- mapNotNull 可以返回null, 并转成Mono.empty()
- map 不允许返回null,会引发NPE异常
无论何时,应该优先使用
mapNotNull